package com.example.designpatterns.factory.practical;

/**
 * 数据库连接工厂抽象类 - 定义创建数据库连接的工厂方法
 */
public abstract class DatabaseConnectionFactory {
    /**
     * 工厂方法 - 创建并返回一个数据库连接
     * @return 数据库连接实例
     */
    public abstract DatabaseConnection createConnection();
    
    /**
     * 执行数据库操作的通用流程 - 模板方法
     * @param query 要执行的SQL查询
     */
    public void executeDatabase(String query) {
        // 使用工厂方法获取连接
        DatabaseConnection connection = createConnection();
        
        try {
            // 连接数据库
            connection.connect();
            // 执行查询
            connection.executeQuery(query);
        } finally {
            // 确保连接关闭
            connection.close();
        }
    }
} 